package co.edu.udea.iw.tusanimes.bl.impl;

import java.util.List;

import co.edu.udea.iw.tusanimes.bl.VideoBL;
import co.edu.udea.iw.tusanimes.dao.VideoDao;
import co.edu.udea.iw.tusanimes.dao.exception.BLException;
import co.edu.udea.iw.tusanimes.dao.exception.DAOException;
import co.edu.udea.iw.tusanimes.dto.Video;

public class VideoBLImpl implements VideoBL {

	private VideoDao videoDao;

	/**
	 * @return the videoDao
	 */
	public VideoDao getVideoDao() {
		return videoDao;
	}

	/**
	 * @param videoDao
	 *            the videoDao to set
	 */
	public void setVideoDao(VideoDao videoDao) {
		this.videoDao = videoDao;
	}

	@Override
	public List<Video> obtenerVideoSerie(int Serie) throws DAOException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Video buscarVideo(int idVideo) throws DAOException {
		return getVideoDao().buscarVideo(idVideo);
	}

	@Override
	public void eliminarVideo(int idVideo) throws DAOException {
		getVideoDao().eliminarVideo(idVideo);
	}

	@Override
	public void actualizarInfoVideo(Video Video, String nombre, int capitulo,
			int temporada, boolean esCapitulo, String url) throws DAOException,
			BLException {
		if (nombre == null || "".equals(nombre))
			throw new BLException(
					"El nombre del video  no puede ser nulo ni un valor vac�o");

		if (url == null || "".equals(url))
			throw new BLException(
					"La url del video no debe ser nulo ni un valor vac�o");

		Video video = new Video();
		video.setNombre(nombre);
		video.setUrl(url);
		video.setCapitulo(capitulo);
		video.setTemporada(temporada);
		video.setEsCapitulo(esCapitulo);
		getVideoDao().actualizarInfoVideo(video);
	}

	@Override
	public Video crearVideo(String nombre, int capitulo, int temporada,
			boolean esCapitulo, String url) throws DAOException, BLException {

		if (nombre == null || "".equals(nombre))
			throw new BLException(
					"El nombre de la serie no puede ser nulo ni un valor vac�o");

		if (url == null || "".equals(url))
			throw new BLException(
					"la sipnosis de la no puede ser nulo ni un valor vac�o");

		Video video = new Video();

		video.setNombre(nombre);
		video.setUrl(url);
		video.setCapitulo(capitulo);
		video.setTemporada(temporada);
		video.setEsCapitulo(esCapitulo);
		getVideoDao().crearVideo(video);
		return video;
	}

}
